package com.lanou3g.code0423;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.UnsupportedEncodingException;

/**
 * Created by dllo on 18/4/23.
 */

//出现乱码解决方案:先写到字节数组 ---> uinicode ------> 需要的编码
public class Main {
    public static void main(String[] args) {

        String a = "我"; //Unicode编码 GBK Unicode(字符集) (在硬盘上要考虑怎样让其变得更小,所以以utf8编码压缩)-->utf8(Unicode存在硬盘上的一种显示方案)
        byte[] bytes = new byte[0];
        try {
            bytes = a.getBytes("utf-8"); //()默认是"utf-8"编码,省略
        }catch (UnsupportedEncodingException e) {

            e.printStackTrace();

        }
        for (byte aByte : bytes) {
            //16进制 0 1 2 3 4 5 6 7 8 9 A B C D E F
            //2 进制的4位
            //1个字节2进制8位 -> 2个16进制的数
            System.out.println(Integer.toHexString(aByte));
        }
        try {

            FileInputStream fileInputStream = new FileInputStream(new File("文件名"));
            byte[] buf = new byte[1024];
            int lenthg = fileInputStream.read(buf);
            String s = new String(buf ,0,lenthg,"gbk");//将GBK文件的文本读成GBK
            s.getBytes("gbk"); //将unicode变成gbk
            System.out.println(s);
            //utf转gbk必须先转为unicode才能在转为gbk,不能直接转
            //复制粘贴是先变成unicode在转为其他格式
            //写到内存是unicode格式

        } catch (Exception e) {
            e.printStackTrace();
        }

    }
}
